k8s、Deployment多副本资源详解、SERVICE通信、案例一nginx端口暴露、案例二tomcat端口暴露 | 您所在的位置:网站首页 › k8s 多实例 › k8s、Deployment多副本资源详解、SERVICE通信、案例一nginx端口暴露、案例二tomcat端口暴露 |
文章目录
案例一创建SERVICE案例一nginx端口暴露案例二tomcat端口暴露
使用yaml创建Deployment
k8s deployment资源创建流程:
1. 用户通过 kubectl 创建 Deployment。
2. Deployment 创建 ReplicaSet。
3. ReplicaSet 创建 Pod。
对象的命名方式是:子对象的名字 = 父对象名字 + 随机字符串或数字 Deployment是一个定义及管理多副本应用(即多个副本 Pod)的新一代对象,与Replication Controller相比,它提供了更加完善的功能,使用起来更加简单方便 案例一 例1: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80启动一个pod 看看有几个副本 [root@k8s-mastet deployment.yaml]# kubectl apply -f nginx-depl.yml deployment.apps/dep01 unchanged service/mysvc unchanged 创建SERVICE自己理解就是将自己的端口暴露给外界,让外界能访问 [root@kub-k8s-master prome]# vim nginx-depl.yml apiVersion: apps/v1 kind: Deployment metadata: name: dep01 spec: selector: matchLabels: #必须设定的 app: web replicas: 2 template: metadata: name: testnginx9 labels: app: web spec: containers: - name: testnginx9 image: daocloud.io/library/nginx ports: - containerPort: 80创建pod [root@kub-k8s-master prome]# kubectl apply -f nginx-depl.yml 创建service并且以nodePort的方式暴露端口给外网: [root@kub-k8s-master prome]# vim nginx_svc.yaml apiVersion: v1 kind: Service metadata: name: mysvc spec: type: NodePort #类型 ports: - port: 8080 nodePort: 30001 targetPort: 80 selector: #选择器 app: web创建pod [root@kub-k8s-master prome]# kubectl apply -f nginx_svc.yaml service/mysvc created3.测试 [root@kub-k8s-master prome]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 5d18h mysvc NodePort 10.100.166.208 8080:30001/TCP 21s 案例一nginx端口暴露我直接写到一起拉 直接创建一个pod就可以 vim nginx-depl.yml apiVersion: apps/v1 kind: Deployment metadata: name: dep01 spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: name: testnginx9 labels: app: nginx spec: containers: - name: testnginx9 image: daocloud.io/library/nginx:1.12.0-alpine ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: mysvc spec: type: NodePort ports: - port: 8080 nodePort: 30001 targetPort: 80 selector: app: nginx通信原理概念图 创建pod测试 kubectl apply -f nginx-depl.yml访问10.8.156.119:3001 访问10.8.156.120:3001 案例二tomcat端口暴露我先用node节点把镜像拉下来拉,先拉后拉都一样,没有会自己拉取 node节点都操作 docker pull daocloud.io/library/tomcat:8.0.45master节点操作 vim tomcat-depl.yml --- apiVersion: apps/v1 kind: Deployment metadata: name: dep01 spec: selector: matchLabels: app: tomcat replicas: 2 template: metadata: name: testomcat labels: app: tomcat spec: containers: - name: testtomcat image: daocloud.io/library/tomcat:8.0.45 ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: mysvc spec: type: NodePort ports: - port: 8081 nodePort: 30003 targetPort: 8080 selector: app: tomcat创建一个pod测试 [root@k8s-mastet deployment.yaml]# kubectl apply -f tomcat-depl.yml deployment.apps/dep01 created service/mysvc created [root@k8s-mastet deployment.yaml]# kubectl get pods NAME READY STATUS RESTARTS AGE dep01-76b88bb67b-8kgmh 1/1 Running 0 7s dep01-76b88bb67b-s66z8 1/1 Running 0 7s [root@k8s-mastet deployment.yaml]#测试10.8.156.119:3003 测试10.8.156.120:3003 |
CopyRight 2018-2019 实验室设备网 版权所有 |